Segal
Files:Tags: No tags.file doesn't know what it is, binwalk doesn't have anything, and there's nothing in strings afaikply so maybe they stripped magic bytes?"The file format has two sub-formats: an ASCII representation for easily getting started, and a binary version for compact storage and for rapid saving and loading."format ascii 1.0 { ascii/binary, format version number }
comment made by Greg Turk { comments keyword specified, like all lines }
comment this file is a cube
element vertex 8 { define "vertex" element, 8 of them in file }
property float x { vertex contains float "x" coordinate }
property float y { y coordinate is also a vertex property }
property float z { z coordinate, too }
element face 6 { there are 6 "face" elements in the file }
property list uchar int vertex_index { "vertex_indices" is a list of ints }
end_header { delimits the end of the header }
0 0 0 { start of vertex list }
0 0 1
0 1 1
0 1 0
1 0 0
1 0 1
1 1 1
1 1 0
4 0 1 2 3 { start of face list }
4 7 6 5 4
4 0 4 5 1
4 1 5 6 2
4 2 6 7 3
4 3 7 4 0format ascii 1.0 { ascii/binary, format version number }
comment made by Greg Turk { comments keyword specified, like all lines }
comment this file is a cube
element vertex 8 { define "vertex" element, 8 of them in file }
property float x { vertex contains float "x" coordinate }
property float y { y coordinate is also a vertex property }
property float z { z coordinate, too }
element face 6 { there are 6 "face" elements in the file }
property list uchar int vertex_index { "vertex_indices" is a list of ints }
end_header { delimits the end of the header }ply
format binary_little_endian 1.0
element vertex ?
property float x
property float y
property float z
property char ?
property char ?
property char ?
end_headerle-float, le-float, le-float, char, char, char in this orderimport pydeck
import pandas as pd
import struct
raw_file = open("password.ply", "rb").read()
data = [["x", "y", "z", "r", "g", "b"]]
def load_data(offset, end, data):
i = offset
while i < end:
x, y, z, r, g, b = struct.unpack("<fffBBB", raw_file[i:i + 15])
# zoom into the flag
if -1.1 < x < -0.1 and -0.09 < z < -0.04 and -1 < y < -0.7:
data.append([x, y, z, r, g, b])
i += 15
load_data(0, 36090, data)
load_data(36089, 491384, data)
load_data(491383, 992147, data)
load_data(1159886, 1267901, data)
load_data(1267915, 1607529, data)
load_data(1607529, 1607529, data)
load_data(1791383, 1966447, data)
starters = [1966447, 2689266, 2883455, 2953759, 3247502, 3673276, 3705180, 3760004, 4075693, 4305672, 4479161]
for i in range(len(starters) - 1):
load_data(starters[i], starters[i + 1], data)
df = pd.DataFrame(data[1:], columns=data[0])
target = [df.x.mean(), df.y.mean(), df.z.mean()]
point_cloud_layer = pydeck.Layer(
"PointCloudLayer",
data=df,
get_position=["x", "y", "z"],
get_color=["r", "g", "b"],
get_normal=[0, 0, 1],
auto_highlight=True,
pickable=True,
point_size=3,
)
view_state = pydeck.ViewState(target=target, controller=True, rotation_x=00, rotation_orbit=210, zoom=11)
view = pydeck.View(type="OrbitView", controller=True)
r = pydeck.Deck(point_cloud_layer, initial_view_state=view_state, views=[view])
r.to_html("point_cloud_layer.html", css_background_color="#add8e6")